common.skill

অ্যারে এবং স্ট্রিং

Computer Programming - সি++ প্রোগ্রামিং (C++ Programming)
299
299

অ্যারে এবং স্ট্রিং সি++ এ দুটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, যা একাধিক ডেটা উপাদান সংরক্ষণ করতে ব্যবহৃত হয়। অ্যারে একই ধরনের ডেটার সংগ্রহ এবং স্ট্রিং অক্ষরের সংগ্রহ।

অ্যারে (Array)

অ্যারে হলো একই ধরনের একাধিক উপাদান সংরক্ষণের জন্য নির্ধারিত একটি ডেটা স্ট্রাকচার। এটি এক ধরনের সংগ্রহ, যেখানে প্রতিটি উপাদান নির্দিষ্ট একটি সূচকের মাধ্যমে অ্যাক্সেস করা যায়।

অ্যারের বৈশিষ্ট্য

  1. একই ধরনের ডেটা: একটি অ্যারেতে সব উপাদান একই ডেটা টাইপের হয়।
  2. স্থির আকার: অ্যারের আকার প্রোগ্রাম চলাকালীন পরিবর্তন করা যায় না (স্থির আকারে সংরক্ষিত থাকে)।
  3. সূচক ব্যবহার: অ্যারেতে প্রতিটি উপাদান নির্দিষ্ট একটি সূচক (index) দ্বারা অ্যাক্সেস করা হয়, সূচক সাধারণত 0 থেকে শুরু হয়।

অ্যারের সাধারণ গঠন

data_type array_name[array_size];
  • data_type: অ্যারের প্রতিটি উপাদানের ডেটা টাইপ।
  • array_name: অ্যারের নাম।
  • array_size: অ্যারের আকার (সংরক্ষিত উপাদানের সংখ্যা)।

অ্যারের উদাহরণ

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {10, 20, 30, 40, 50}; // একটি ইন্টিজার অ্যারে ঘোষণা ও ইনিশিয়ালাইজেশন

    // অ্যারের মান প্রদর্শন করা
    for (int i = 0; i < 5; i++) {
        cout << "Element at index " << i << ": " << numbers[i] << endl;
    }

    return 0;
}

বর্ণনা:

  • এখানে numbers নামে একটি ইন্টিজার টাইপের অ্যারে রয়েছে, যার মধ্যে ৫টি উপাদান সংরক্ষিত আছে।
  • for লুপ ব্যবহার করে প্রতিটি উপাদান প্রদর্শন করা হয়েছে।

স্ট্রিং (String)

স্ট্রিং হলো অক্ষরের একটি সংগ্রহ, যা সাধারণত char টাইপের অ্যারে হিসাবে সংরক্ষিত হয়। তবে, সি++ এ স্ট্রিং পরিচালনার জন্য string নামে একটি ডেটা টাইপ রয়েছে যা C++ স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত।

স্ট্রিংয়ের বৈশিষ্ট্য

  1. অক্ষরের সংগ্রহ: একটি স্ট্রিং অনেকগুলো অক্ষরের ধারাবাহিকতা।
  2. প্রয়োজন মতো আকার পরিবর্তন: string ডেটা টাইপ ব্যবহার করলে স্ট্রিংয়ের আকার প্রোগ্রাম চলাকালীন সময়ে পরিবর্তন করা যায়।
  3. স্ট্যান্ডার্ড লাইব্রেরি ফাংশন: স্ট্রিং পরিচালনা করার জন্য C++ এ অনেক বিল্ট-ইন ফাংশন রয়েছে।

স্ট্রিং ঘোষণা ও ইনিশিয়ালাইজেশন

#include <iostream>
#include <string>
using namespace std;

int main() {
    string greeting = "Hello, World!"; // স্ট্রিং ইনিশিয়ালাইজেশন

    cout << greeting << endl; // স্ট্রিং আউটপুট
    return 0;
}

C স্টাইল স্ট্রিং (Character Array)

C++ এ স্ট্রিং সংরক্ষণের আরেকটি উপায় হলো char টাইপের অ্যারে ব্যবহার করা, যাকে C স্টাইল স্ট্রিং বলা হয়।

#include <iostream>
using namespace std;

int main() {
    char name[] = "Alice"; // C স্টাইল স্ট্রিং

    cout << "Name: " << name << endl;
    return 0;
}

অ্যারে এবং স্ট্রিং এর সাথে ব্যবহৃত কিছু সাধারণ অপারেশন

১. অ্যারে এর সাথে কিছু সাধারণ অপারেশন

সংখ্যা যোগফল নির্ধারণ: অ্যারের উপাদানগুলো যোগ করে মোট যোগফল নির্ধারণ করা।

int sum = 0;
for (int i = 0; i < 5; i++) {
    sum += numbers[i];
}
cout << "Sum of array elements: " << sum << endl;

২. স্ট্রিং এর সাথে কিছু সাধারণ অপারেশন

C++ এর string ডেটা টাইপে বেশ কিছু অপারেশন করা যায়, যেমন:

স্ট্রিং দৈর্ঘ্য: .length() ফাংশন ব্যবহার করে স্ট্রিংয়ের দৈর্ঘ্য জানা যায়।

cout << "Length of greeting: " << greeting.length() << endl;

স্ট্রিং একত্রিত করা (Concatenate): + অপারেটর ব্যবহার করে দুটি স্ট্রিং একত্রিত করা যায়।

string firstName = "John";
string lastName = "Doe";
string fullName = firstName + " " + lastName;
cout << "Full Name: " << fullName << endl;

স্ট্রিং সাবস্ট্রিং: .substr() ফাংশন ব্যবহার করে স্ট্রিংয়ের একটি অংশ পাওয়া যায়।

cout << "Substring: " << greeting.substr(0, 5) << endl; // Output: Hello

স্ট্রিং চরিত্র অ্যাক্সেস: [] অপারেটর ব্যবহার করে নির্দিষ্ট ইনডেক্সের চরিত্র অ্যাক্সেস করা যায়।

cout << "First character of greeting: " << greeting[0] << endl; // Output: H

অ্যারে এবং স্ট্রিং এর মধ্যে পার্থক্য

বৈশিষ্ট্যঅ্যারেস্ট্রিং
ডেটা টাইপএকই ধরনের ডেটা ধারণ করেঅক্ষরের সংগ্রহ, স্ট্রিং লাইব্রেরি ফাংশন সহ
আকার পরিবর্তনস্থির আকার, পরিবর্তন করা যায় নাআকার পরিবর্তনযোগ্য (string ব্যবহার করলে)
ব্যবহারসংখ্যাসহ বিভিন্ন ধরনের ডেটা সংরক্ষণেসাধারণত অক্ষর ও শব্দ সংরক্ষণে ব্যবহৃত

সারসংক্ষেপ

অ্যারে সি++ এ একাধিক ডেটা উপাদান সংরক্ষণের জন্য ব্যবহৃত হয় এবং প্রতিটি উপাদান সূচক দ্বারা অ্যাক্সেস করা যায়। স্ট্রিং হলো অক্ষরের একটি সংগ্রহ, যা string ডেটা টাইপ বা char অ্যারে ব্যবহার করে সংরক্ষণ করা যায়। স্ট্রিং ম্যানিপুলেশনের জন্য string ক্লাসে অনেক বিল্ট-ইন ফাংশন রয়েছে যা স্ট্রিংকে আরও সহজে পরিচালনা করতে সাহায্য করে।

common.content_added_by

অ্যারের ধারণা এবং এর ব্যবহার

319
319

অ্যারে (Array) হলো এক ধরনের ডেটা স্ট্রাকচার, যা একই ধরনের একাধিক ডেটা উপাদান (যেমন পূর্ণসংখ্যা, দশমিক সংখ্যা বা স্ট্রিং) ধারন করতে ব্যবহৃত হয়। অ্যারে ব্যবহার করলে একাধিক ডেটা উপাদানকে একটি মাত্র ভ্যারিয়েবলের মাধ্যমে পরিচালনা করা সম্ভব হয়, যা কোডকে সংক্ষিপ্ত এবং কার্যকরী করে তোলে।

অ্যারের বৈশিষ্ট্য

  1. একই ধরনের ডেটা সংরক্ষণ: অ্যারে কেবল একই ধরনের ডেটা সংরক্ষণ করতে পারে, যেমন সব উপাদান পূর্ণসংখ্যা বা সব উপাদান দশমিক সংখ্যা হতে হবে।
  2. ক্রম অনুযায়ী অ্যাক্সেস: অ্যারে একাধিক উপাদান ধারন করে এবং প্রতিটি উপাদান একটি নির্দিষ্ট ক্রম অনুযায়ী অবস্থান করে, যা ইনডেক্স (index) দ্বারা অ্যাক্সেস করা যায়। ইনডেক্স সাধারণত ০ (শূন্য) থেকে শুরু হয়।
  3. স্থির আকার: C++ এ স্ট্যাটিক অ্যারে ব্যবহারের সময় আকার নির্ধারণ করা হয়, যা পরবর্তীতে পরিবর্তন করা যায় না।

C++ এ অ্যারে ঘোষণা ও ব্যবহার

অ্যারে ঘোষণা

অ্যারে ঘোষণা করার সময় ডেটা টাইপ, অ্যারের নাম এবং অ্যারের আকার নির্ধারণ করতে হয়।

data_type array_name[array_size];

উদাহরণ:

int numbers[5]; // 5টি পূর্ণসংখ্যা ধারণকারী একটি অ্যারে

অ্যারে ইনিশিয়ালাইজেশন

অ্যারের ইনিশিয়ালাইজেশন করার সময় নির্দিষ্ট মান প্রদান করা হয়।

int numbers[5] = {1, 2, 3, 4, 5}; // ৫টি উপাদান বিশিষ্ট একটি পূর্ণসংখ্যা অ্যারে

অথবা:

int numbers[] = {1, 2, 3, 4, 5}; // আকার নির্ধারণ না করলেও C++ স্বয়ংক্রিয়ভাবে অ্যারের আকার নির্ধারণ করবে

অ্যারে উপাদানে অ্যাক্সেস

অ্যারের উপাদান অ্যাক্সেস করতে ইনডেক্স ব্যবহার করা হয়। ইনডেক্স ০ (শূন্য) থেকে শুরু হয়, তাই numbers[0] অ্যারের প্রথম উপাদানকে নির্দেশ করে।

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {10, 20, 30, 40, 50};

    cout << "First element: " << numbers[0] << endl; // 10
    cout << "Second element: " << numbers[1] << endl; // 20
    cout << "Third element: " << numbers[2] << endl; // 30

    return 0;
}

অ্যারে এবং লুপ

অ্যারে সাধারণত লুপের মাধ্যমে অ্যাক্সেস করা হয়, বিশেষত যখন অ্যারে বড় হয়। নিচের উদাহরণে for লুপ ব্যবহার করে একটি অ্যারের সব উপাদান প্রিন্ট করা হয়েছে।

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {10, 20, 30, 40, 50};

    for (int i = 0; i < 5; i++) {
        cout << "Element at index " << i << ": " << numbers[i] << endl;
    }

    return 0;
}

বর্ণনা:

  • এখানে for লুপ ব্যবহার করে অ্যারের প্রতিটি উপাদান অ্যাক্সেস করা হয়েছে এবং numbers[i] দ্বারা প্রতিটি উপাদান প্রিন্ট করা হয়েছে।

অ্যারের ব্যবহার

অ্যারের ব্যবহার বিভিন্ন ক্ষেত্রে গুরুত্বপূর্ণ, বিশেষ করে যখন একাধিক ডেটা উপাদান একই ধরনের এবং তাদের একসঙ্গে সংরক্ষণ করতে হয়।

উদাহরণ ১: গণনার জন্য অ্যারে ব্যবহার

#include <iostream>
using namespace std;

int main() {
    int marks[5] = {85, 90, 78, 88, 76};
    int sum = 0;

    for (int i = 0; i < 5; i++) {
        sum += marks[i];
    }

    double average = sum / 5.0;
    cout << "Average marks: " << average << endl;

    return 0;
}

বর্ণনা:

  • এখানে marks নামে একটি অ্যারে ঘোষণা করা হয়েছে, যাতে ৫টি উপাদান রয়েছে। লুপের মাধ্যমে এই উপাদানগুলোর যোগফল বের করা হয়েছে এবং শেষে গড় মান প্রিন্ট করা হয়েছে।

উদাহরণ ২: ব্যবহারকারীর ইনপুট গ্রহণ করা

#include <iostream>
using namespace std;

int main() {
    int numbers[5];

    cout << "Enter 5 numbers: ";
    for (int i = 0; i < 5; i++) {
        cin >> numbers[i];
    }

    cout << "You entered: ";
    for (int i = 0; i < 5; i++) {
        cout << numbers[i] << " ";
    }
    cout << endl;

    return 0;
}

বর্ণনা:

  • এখানে ব্যবহারকারীর কাছ থেকে ৫টি সংখ্যা ইনপুট নেওয়া হয়েছে এবং সেগুলো পরে প্রিন্ট করা হয়েছে। cin এবং cout ব্যবহার করে এই কাজটি করা হয়েছে।

মাল্টি-ডাইমেনশনাল অ্যারে

C++ এ একাধিক স্তরের (dimensions) অ্যারে তৈরি করা যায়, যেমন টু-ডাইমেনশনাল অ্যারে, যা ম্যাট্রিক্স বা টেবিল আকারে ডেটা সংরক্ষণ করতে সাহায্য করে।

#include <iostream>
using namespace std;

int main() {
    int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            cout << "Element at [" << i << "][" << j << "]: " << matrix[i][j] << endl;
        }
    }

    return 0;
}

বর্ণনা:

  • এখানে ২x৩ ম্যাট্রিক্স আকারে একটি টু-ডাইমেনশনাল অ্যারে ব্যবহার করা হয়েছে এবং লুপের মাধ্যমে প্রতিটি উপাদান অ্যাক্সেস করা হয়েছে।

সারসংক্ষেপ

  • অ্যারে হলো একই ধরনের একাধিক উপাদান সংরক্ষণের জন্য ব্যবহৃত ডেটা স্ট্রাকচার।
  • এটি ইনডেক্সের মাধ্যমে প্রতিটি উপাদান অ্যাক্সেস করতে সহায়ক।
  • লুপ ব্যবহার করে অ্যারে সহজে অ্যাক্সেস এবং ম্যানিপুলেট করা যায়।
  • মাল্টি-ডাইমেনশনাল অ্যারে বিভিন্ন স্তরে ডেটা সংরক্ষণ করতে সক্ষম।

অ্যারের মাধ্যমে প্রোগ্রামে ডেটা ম্যানিপুলেশন এবং বিভিন্ন ডেটা পরিচালনা সহজ এবং কার্যকর হয়।

common.content_added_by

একমাত্রিক এবং বহু-মাত্রিক অ্যারে

288
288

সি++ এ অ্যারে হলো একটি ডেটা স্ট্রাকচার যা একই ধরনের একাধিক উপাদান সংরক্ষণ করতে ব্যবহৃত হয়। এটি সাধারণত দুটি প্রকারে ভাগ করা হয়: একমাত্রিক অ্যারে এবং বহু-মাত্রিক অ্যারে

একমাত্রিক অ্যারে (One-Dimensional Array)

একমাত্রিক অ্যারে হলো এমন একটি অ্যারে, যার প্রতিটি উপাদান একটি মাত্র সূচক বা ইনডেক্স দ্বারা অ্যাক্সেস করা যায়। এটি সাধারণত একটি সরল লাইনে একত্রে সংরক্ষিত ডেটার একটি তালিকা।

গঠন

data_type array_name[array_size];
  • data_type: অ্যারের উপাদানগুলোর ডেটা টাইপ।
  • array_name: অ্যারের নাম।
  • array_size: অ্যারের আকার, অর্থাৎ উপাদান সংখ্যা।

উদাহরণ

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {10, 20, 30, 40, 50}; // ৫টি উপাদান বিশিষ্ট একমাত্রিক অ্যারে

    // অ্যারের মান প্রদর্শন করা
    for (int i = 0; i < 5; i++) {
        cout << "Element at index " << i << ": " << numbers[i] << endl;
    }

    return 0;
}

বর্ণনা:

  • এখানে numbers নামে একটি int টাইপের অ্যারে রয়েছে যার আকার ৫ এবং ইনডেক্স ০ থেকে শুরু হয়।
  • প্রতিটি উপাদান numbers[i] ফর্মেটে অ্যাক্সেস করা হয়।

বহু-মাত্রিক অ্যারে (Multi-Dimensional Array)

বহু-মাত্রিক অ্যারে হলো এমন একটি অ্যারে, যেখানে প্রতিটি উপাদান একাধিক সূচক বা ইনডেক্স ব্যবহার করে অ্যাক্সেস করা যায়। সাধারণত ২-মাত্রিক (2D) এবং ৩-মাত্রিক (3D) অ্যারে বেশি ব্যবহৃত হয়।

২-মাত্রিক অ্যারে (Two-Dimensional Array)

২-মাত্রিক অ্যারে একটি সারি (row) ও কলাম (column) ভিত্তিক অ্যারে। একে ম্যাট্রিক্স বা টেবিলের মতো দেখতে।

গঠন

data_type array_name[rows][columns];
  • data_type: অ্যারের উপাদানের ডেটা টাইপ।
  • array_name: অ্যারের নাম।
  • rows: সারির সংখ্যা।
  • columns: কলামের সংখ্যা।

উদাহরণ

#include <iostream>
using namespace std;

int main() {
    int matrix[3][3] = { 
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    // ২-মাত্রিক অ্যারের উপাদান প্রদর্শন
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

বর্ণনা:

  • এখানে matrix নামে একটি ৩x৩ আকারের ২-মাত্রিক অ্যারে আছে।
  • matrix[i][j] ফর্মেটে প্রতিটি উপাদান অ্যাক্সেস করা হয়, যেখানে i হলো সারি এবং j হলো কলাম।

৩-মাত্রিক অ্যারে (Three-Dimensional Array)

৩-মাত্রিক অ্যারে একাধিক স্তরে উপাদান সংরক্ষণ করতে পারে, যেখানে প্রতিটি উপাদান তিনটি ইনডেক্স দ্বারা অ্যাক্সেস করা হয়।

গঠন

data_type array_name[depth][rows][columns];
  • depth: স্তরের সংখ্যা।
  • rows: প্রতিটি স্তরের সারির সংখ্যা।
  • columns: প্রতিটি স্তরের কলামের সংখ্যা।

উদাহরণ

#include <iostream>
using namespace std;

int main() {
    int cube[2][2][2] = {
        {{1, 2}, {3, 4}},
        {{5, 6}, {7, 8}}
    };

    // ৩-মাত্রিক অ্যারের উপাদান প্রদর্শন
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 2; j++) {
            for (int k = 0; k < 2; k++) {
                cout << "cube[" << i << "][" << j << "][" << k << "] = " << cube[i][j][k] << endl;
            }
        }
    }

    return 0;
}

বর্ণনা:

  • এখানে cube নামে একটি ২x২x২ আকারের ৩-মাত্রিক অ্যারে আছে।
  • cube[i][j][k] ফর্মেটে প্রতিটি উপাদান অ্যাক্সেস করা হয়, যেখানে i স্তর, j সারি এবং k কলাম নির্দেশ করে।

একমাত্রিক এবং বহু-মাত্রিক অ্যারের মধ্যে পার্থক্য

বৈশিষ্ট্যএকমাত্রিক অ্যারেবহু-মাত্রিক অ্যারে
গঠনএকটিমাত্র ইনডেক্স দ্বারা অ্যাক্সেসএকাধিক ইনডেক্স দ্বারা অ্যাক্সেস
ব্যবহারসরল ডেটা তালিকা সংরক্ষণেটেবিল, ম্যাট্রিক্স, এবং জটিল কাঠামো সংরক্ষণে
দৃষ্টান্তint arr[5];int arr[3][3];, int arr[2][2][2];

ব্যবহার ক্ষেত্র

  • একমাত্রিক অ্যারে: সাধারণ তালিকা বা ডেটার সংরক্ষণ যেমন সংখ্যা, স্ট্রিংয়ের তালিকা।
  • বহু-মাত্রিক অ্যারে: ম্যাট্রিক্স, টেবিল ডেটা, গেম ডেভেলপমেন্টের গ্রিড বা 3D স্পেসের তথ্য সংরক্ষণে।

সারসংক্ষেপ

একমাত্রিক অ্যারে হলো একই ধরনের ডেটা সংরক্ষণের সরল একটি সংগ্রহ, যা শুধুমাত্র একটি ইনডেক্স ব্যবহার করে অ্যাক্সেস করা যায়। বহু-মাত্রিক অ্যারে হলো টেবিল বা ম্যাট্রিক্স আকারে ডেটা সংরক্ষণের একটি পদ্ধতি, যেখানে একাধিক ইনডেক্স ব্যবহার করে উপাদানগুলো অ্যাক্সেস করা যায়। সি++ এ এই দুটি অ্যারের মাধ্যমে বড় আকারের ডেটা সংগঠিতভাবে সংরক্ষণ এবং পরিচালনা করা যায়।

common.content_added_by

string এবং string.h লাইব্রেরির ব্যবহার

284
284

স্ট্রিং (string) হলো অক্ষরের একটি ক্রম, যা C++ প্রোগ্রামিংয়ে পাঠ্য তথ্য সংরক্ষণ ও পরিচালনার জন্য ব্যবহৃত হয়। C++ এ স্ট্রিং ব্যবহারের জন্য দুটি প্রধান পদ্ধতি রয়েছে:

  1. C-স্টাইল স্ট্রিং: এটি মূলত C প্রোগ্রামিং থেকে আসে এবং string.h লাইব্রেরি ব্যবহার করে।
  2. C++ স্ট্যান্ডার্ড স্ট্রিং ক্লাস: C++ এর string ক্লাস, যা <string> হেডার ফাইল ব্যবহার করে।

১. C-স্টাইল স্ট্রিং এবং string.h লাইব্রেরি

C-স্টাইল স্ট্রিং মূলত অক্ষরের একটি অ্যারে হিসাবে সংরক্ষিত হয়, এবং এটি \0 (null character) দিয়ে শেষ হয়। C++ এ string.h (বা cstring) লাইব্রেরি C-স্টাইল স্ট্রিং পরিচালনার জন্য বিভিন্ন ফাংশন সরবরাহ করে, যেমন strlen, strcpy, strcmp, ইত্যাদি।

C-স্টাইল স্ট্রিং উদাহরণ

#include <iostream>
#include <cstring> // string.h এর পরিবর্তে cstring ব্যবহার করা হচ্ছে
using namespace std;

int main() {
    char str1[20] = "Hello";
    char str2[20] = "World";

    // স্ট্রিং লম্বা নির্ণয়
    cout << "Length of str1: " << strlen(str1) << endl;

    // স্ট্রিং অনুলিপি করা
    strcpy(str1, str2);
    cout << "After copying, str1: " << str1 << endl;

    // স্ট্রিং মিলানো
    if (strcmp(str1, str2) == 0) {
        cout << "str1 and str2 are equal" << endl;
    } else {
        cout << "str1 and str2 are not equal" << endl;
    }

    return 0;
}

string.h লাইব্রেরির প্রধান ফাংশনসমূহ

ফাংশনকাজ
strlenস্ট্রিংয়ের দৈর্ঘ্য নির্ণয় করে
strcpyএকটি স্ট্রিং অন্য স্ট্রিংয়ে অনুলিপি করে
strcatদুটি স্ট্রিং যোগ করে
strcmpদুটি স্ট্রিং তুলনা করে
strncpyনির্দিষ্ট সংখ্যক অক্ষর একটি স্ট্রিং থেকে অন্য স্ট্রিংয়ে অনুলিপি করে
strstrএকটি স্ট্রিংয়ের মধ্যে অন্য একটি স্ট্রিং অনুসন্ধান করে

উদাহরণ: strlen, strcpy, এবং strcmp এর ব্যবহার

#include <iostream>
#include <cstring>
using namespace std;

int main() {
    char str1[] = "Programming";
    char str2[20];

    // strlen ব্যবহার করে স্ট্রিংয়ের দৈর্ঘ্য নির্ণয়
    cout << "Length of str1: " << strlen(str1) << endl;

    // strcpy ব্যবহার করে স্ট্রিং অনুলিপি
    strcpy(str2, str1);
    cout << "Copied str2: " << str2 << endl;

    // strcmp ব্যবহার করে স্ট্রিং তুলনা
    if (strcmp(str1, str2) == 0) {
        cout << "str1 and str2 are equal." << endl;
    } else {
        cout << "str1 and str2 are not equal." << endl;
    }

    return 0;
}

২. C++ স্ট্যান্ডার্ড string ক্লাস এবং <string> লাইব্রেরি

C++ এ string ক্লাস ব্যবহার করে স্ট্রিং পরিচালনা করা আরও সহজ এবং কার্যকর। এটি <string> হেডার ফাইল অন্তর্ভুক্ত করে ব্যবহৃত হয় এবং C++ এর স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরির (STL) অংশ।

string ক্লাস উদাহরণ

#include <iostream>
#include <string> // C++ string লাইব্রেরি
using namespace std;

int main() {
    string str1 = "Hello";
    string str2 = "World";

    // স্ট্রিং যোগ করা
    string str3 = str1 + " " + str2;
    cout << "Concatenated string: " << str3 << endl;

    // স্ট্রিং দৈর্ঘ্য
    cout << "Length of str3: " << str3.length() << endl;

    // সাবস্ট্রিং খুঁজে বের করা
    cout << "Substring of str3: " << str3.substr(0, 5) << endl;

    // স্ট্রিং তুলনা
    if (str1 == str2) {
        cout << "str1 and str2 are equal." << endl;
    } else {
        cout << "str1 and str2 are not equal." << endl;
    }

    return 0;
}

C++ string ক্লাসের প্রধান ফাংশনসমূহ

ফাংশনকাজ
lengthস্ট্রিংয়ের দৈর্ঘ্য নির্ণয় করে
sizeস্ট্রিংয়ের দৈর্ঘ্য নির্ণয় করে (length এর সমতুল্য)
emptyস্ট্রিং খালি কিনা তা পরীক্ষা করে
substrসাবস্ট্রিং প্রদান করে
findস্ট্রিংয়ের মধ্যে নির্দিষ্ট সাবস্ট্রিং অনুসন্ধান করে
appendস্ট্রিংয়ের শেষে আরও স্ট্রিং যোগ করে
compareদুটি স্ট্রিং তুলনা করে
clearস্ট্রিং খালি করে
replaceস্ট্রিংয়ের নির্দিষ্ট অংশ প্রতিস্থাপন করে

উদাহরণ: length, substr, এবং find এর ব্যবহার

#include <iostream>
#include <string>
using namespace std;

int main() {
    string text = "Welcome to C++ Programming";

    // স্ট্রিং দৈর্ঘ্য
    cout << "Length of text: " << text.length() << endl;

    // সাবস্ট্রিং তৈরি
    string subText = text.substr(11, 3); // "C++" অংশটি খুঁজে বের করে
    cout << "Substring: " << subText << endl;

    // স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দ খোঁজা
    size_t position = text.find("C++");
    if (position != string::npos) {
        cout << "'C++' found at position: " << position << endl;
    } else {
        cout << "'C++' not found." << endl;
    }

    return 0;
}

বর্ণনা:

  • text.length(): স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ করে।
  • text.substr(11, 3): text স্ট্রিং থেকে ১১ নম্বর অবস্থান থেকে ৩টি অক্ষরের সাবস্ট্রিং খুঁজে বের করে।
  • text.find("C++"): text স্ট্রিংয়ের মধ্যে "C++" শব্দটি অনুসন্ধান করে।

C-স্টাইল স্ট্রিং বনাম C++ string ক্লাস

বৈশিষ্ট্যC-স্টাইল স্ট্রিং (string.h)C++ string ক্লাস
ঘোষণার ধরনক্যারেক্টার অ্যারের উপর ভিত্তি করেstring ক্লাস অবজেক্ট
কার্যকারিতাসীমিত কার্যকারিতাবিভিন্ন ধরনের কার্যকরী ফাংশন প্রদান
পরিচালনাম্যানুয়াল অপারেশন প্রয়োজনস্ট্যান্ডার্ড লাইব্রেরির মাধ্যমে সহজ
ব্যবহারিক ক্ষেত্রেসি এবং কমপ্যাটিবিলিটির জন্যC++ প্রোগ্রামিংয়ে আরও সুবিধাজনক

সারসংক্ষেপ

  • C-স্টাইল স্ট্রিং string.h বা cstring লাইব্রেরি ব্যবহার করে এবং ক্যারেক্টার অ্যারের উপর ভিত্তি করে তৈরি।
  • C++ string ক্লাস C++ এ স্ট্রিং ব্যবহারের জন্য আরও সুবিধাজনক এবং <string> হেডার ফাইল অন্তর্ভুক্ত করে।
  • C++ এর string ক্লাস ব্যবহার করে স্ট্রিং পরিচালনা করা সহজ এবং স্ট্রিং নিয়ে কাজ করার জন্য অনেক ফাংশন রয়েছে, যা প্রোগ্রামিংকে আরও কার্যকর এবং সহজ করে তোলে।

C++ প্রোগ্রামিংয়ে স্ট্রিং নিয়ে কাজ করার সময় সাধারণত C++ string ক্লাস ব্যবহারের পরামর্শ দেওয়া হয়, কারণ এটি আরো সুবিধাজনক এবং আধুনিক প্রোগ্রামিং পদ্ধতিতে বেশি কার্যকর।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion